/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.jims.master.modules.sync.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 住院记录Entity
 * @author xueyx
 * @version 2017-11-16
 */
public class PatVisit extends DataEntity<PatVisit> {
	
	private static final long serialVersionUID = 1L;
	private String baseInfo;		// 用户id
    private String idCard;		// 身份证号
	private String visitNo;		// 住院号
	private String bedNo;		// 病床号
	private String bedWardNo;		// 病房号
	private String infectedPatchName;		// 病区名称
	private String historyStatementMaker;		// 病史陈述者姓名
	private String reliableIndicate;		// 陈述内容可靠标志
	private String relation;		// 陈述者与患者的关系代码
	private String infectionHistory;		// 传染病史
	private String accessoryExam;		// 辅助检査结果
	private String personalHistory;		// 个人史
	private String irriHistory;		// 过敏史
	private String infeIndicate;		// 患者传染性标志
	private String name;		// 患者姓名
	private String maritalStatus;		// 婚姻状况代码
	private String marriageHistory;		// 婚育史
	private String illnessHistory;		// 疾病史（含外伤）
	private String familyHistory;		// 家族史
	private String receiveDoctor;		// 接诊医师签名
	private String deptName;		// 科室名称
    private String deptNameStr;		// 科室名称
	private String wardDischargeTo;		// 出院病房
	private String deptDischargeTo;		// 出院科别
    private String deptDischargeToStr;		// 出院科别
	private Date dischargeDate;		// 出院日期时间
    private String dischargeDateStr;		// 出院日期时间
	private Date inDate;		// 入院日期时间
    private String inDateStr;		// 入院日期时间
	private String inCisSituation;		// 人院诊断顺位
	private String operationHistory;		// 手术史
	private String tranHistory;		// 输血史
	private String presentHistory;		// 现病史
	private String sex;		// 性别代码
	private String healthIndicate;		// 一般健康状况标志
	private String preventHistory;		// 预防接种史
	private String mensesHistory;		// 月经史
	private String profession;		// 职业类别代码
	private String directorDoctor;		// 主任医师签名
	private String actionInChief;		// 主诉
	private String attendingsSign;		// 主治医师签名
	private String residentSign;		// 住院医师签名
	private String specialized;		// 专科情况
	private String avenue;		// 入院途径代码
    private String avenueStr;		// 入院途径文本
	private String irriIndicate;		// 药物过敏标志
	private String payment;		// 医疗付费方式代码
    private String leaveTypeCode;//离院方式代码
    private String payTypeCode;//住院住院费用结算方式代码
    private String orgId;		// 机构id
	private String orgName;		// 医疗机构名称

    private String isAgreeAutopsy;// 死亡患者尸检
    private String visitNumber;//住院次数
    private String dutyNurse; //责任护士

    private String placeAddress; //户口地址
    private String postCode;// 邮编
    private String nativePlace;//籍贯
    private String inDiagnosisId;//入院诊断外键id
    private String isPublic;

	public String getIsPublic() {
		return isPublic;
	}

	public void setIsPublic(String isPublic) {
		this.isPublic = isPublic;
	}

	public PatVisit() {
		super();
	}

	public PatVisit(String id){
		super(id);
	}

	@Length(min=0, max=64, message="用户id长度必须介于 0 和 64 之间")
	public String getBaseInfo() {
		return baseInfo;
	}

	public void setBaseInfo(String baseInfo) {
		this.baseInfo = baseInfo;
	}
	
	@Length(min=0, max=50, message="住院号长度必须介于 0 和 50 之间")
	public String getVisitNo() {
		return visitNo;
	}

	public void setVisitNo(String visitNo) {
		this.visitNo = visitNo;
	}
	
	@Length(min=0, max=10, message="病床号长度必须介于 0 和 10 之间")
	public String getBedNo() {
		return bedNo;
	}

	public void setBedNo(String bedNo) {
		this.bedNo = bedNo;
	}
	
	@Length(min=0, max=10, message="病房号长度必须介于 0 和 10 之间")
	public String getBedWardNo() {
		return bedWardNo;
	}

	public void setBedWardNo(String bedWardNo) {
		this.bedWardNo = bedWardNo;
	}
	
	@Length(min=0, max=50, message="病区名称长度必须介于 0 和 50 之间")
	public String getInfectedPatchName() {
		return infectedPatchName;
	}

	public void setInfectedPatchName(String infectedPatchName) {
		this.infectedPatchName = infectedPatchName;
	}
	
	@Length(min=0, max=50, message="病史陈述者姓名长度必须介于 0 和 50 之间")
	public String getHistoryStatementMaker() {
		return historyStatementMaker;
	}

	public void setHistoryStatementMaker(String historyStatementMaker) {
		this.historyStatementMaker = historyStatementMaker;
	}
	
	@Length(min=0, max=1, message="陈述内容可靠标志长度必须介于 0 和 1 之间")
	public String getReliableIndicate() {
		return reliableIndicate;
	}

	public void setReliableIndicate(String reliableIndicate) {
		this.reliableIndicate = reliableIndicate;
	}
	
	@Length(min=0, max=1, message="陈述者与患者的关系代码长度必须介于 0 和 1 之间")
	public String getRelation() {
		return relation;
	}

	public void setRelation(String relation) {
		this.relation = relation;
	}
	
	public String getInfectionHistory() {
		return infectionHistory;
	}

	public void setInfectionHistory(String infectionHistory) {
		this.infectionHistory = infectionHistory;
	}
	
	public String getAccessoryExam() {
		return accessoryExam;
	}

	public void setAccessoryExam(String accessoryExam) {
		this.accessoryExam = accessoryExam;
	}
	
	public String getPersonalHistory() {
		return personalHistory;
	}

	public void setPersonalHistory(String personalHistory) {
		this.personalHistory = personalHistory;
	}
	
	public String getIrriHistory() {
		return irriHistory;
	}

	public void setIrriHistory(String irriHistory) {
		this.irriHistory = irriHistory;
	}
	
	@Length(min=0, max=1, message="患者传染性标志长度必须介于 0 和 1 之间")
	public String getInfeIndicate() {
		return infeIndicate;
	}

	public void setInfeIndicate(String infeIndicate) {
		this.infeIndicate = infeIndicate;
	}
	
	@Length(min=0, max=50, message="患者姓名长度必须介于 0 和 50 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=0, max=2, message="婚姻状况代码长度必须介于 0 和 2 之间")
	public String getMaritalStatus() {
		return maritalStatus;
	}

	public void setMaritalStatus(String maritalStatus) {
		this.maritalStatus = maritalStatus;
	}
	
	public String getMarriageHistory() {
		return marriageHistory;
	}

	public void setMarriageHistory(String marriageHistory) {
		this.marriageHistory = marriageHistory;
	}
	
	public String getIllnessHistory() {
		return illnessHistory;
	}

	public void setIllnessHistory(String illnessHistory) {
		this.illnessHistory = illnessHistory;
	}
	
	public String getFamilyHistory() {
		return familyHistory;
	}

	public void setFamilyHistory(String familyHistory) {
		this.familyHistory = familyHistory;
	}
	
	@Length(min=0, max=50, message="接诊医师签名长度必须介于 0 和 50 之间")
	public String getReceiveDoctor() {
		return receiveDoctor;
	}

	public void setReceiveDoctor(String receiveDoctor) {
		this.receiveDoctor = receiveDoctor;
	}
	
	@Length(min=0, max=50, message="科室名称长度必须介于 0 和 50 之间")
	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
	
	@Length(min=0, max=10, message="出院病房长度必须介于 0 和 10 之间")
	public String getWardDischargeTo() {
		return wardDischargeTo;
	}

	public void setWardDischargeTo(String wardDischargeTo) {
		this.wardDischargeTo = wardDischargeTo;
	}
	
	@Length(min=0, max=50, message="出院科别长度必须介于 0 和 50 之间")
	public String getDeptDischargeTo() {
		return deptDischargeTo;
	}

	public void setDeptDischargeTo(String deptDischargeTo) {
		this.deptDischargeTo = deptDischargeTo;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDischargeDate() {
		return dischargeDate;
	}

	public void setDischargeDate(Date dischargeDate) {
		this.dischargeDate = dischargeDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getInDate() {
		return inDate;
	}

	public void setInDate(Date inDate) {
		this.inDate = inDate;
	}
	
	@Length(min=0, max=2, message="人院诊断顺位长度必须介于 0 和 2 之间")
	public String getInCisSituation() {
		return inCisSituation;
	}

	public void setInCisSituation(String inCisSituation) {
		this.inCisSituation = inCisSituation;
	}
	
	public String getOperationHistory() {
		return operationHistory;
	}

	public void setOperationHistory(String operationHistory) {
		this.operationHistory = operationHistory;
	}
	
	public String getTranHistory() {
		return tranHistory;
	}

	public void setTranHistory(String tranHistory) {
		this.tranHistory = tranHistory;
	}
	
	public String getPresentHistory() {
		return presentHistory;
	}

	public void setPresentHistory(String presentHistory) {
		this.presentHistory = presentHistory;
	}
	
	@Length(min=0, max=1, message="性别代码长度必须介于 0 和 1 之间")
	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	@Length(min=0, max=1, message="一般健康状况标志长度必须介于 0 和 1 之间")
	public String getHealthIndicate() {
		return healthIndicate;
	}

	public void setHealthIndicate(String healthIndicate) {
		this.healthIndicate = healthIndicate;
	}
	
	public String getPreventHistory() {
		return preventHistory;
	}

	public void setPreventHistory(String preventHistory) {
		this.preventHistory = preventHistory;
	}
	
	public String getMensesHistory() {
		return mensesHistory;
	}

	public void setMensesHistory(String mensesHistory) {
		this.mensesHistory = mensesHistory;
	}
	
	@Length(min=0, max=2, message="职业类别代码长度必须介于 0 和 2 之间")
	public String getProfession() {
		return profession;
	}

	public void setProfession(String profession) {
		this.profession = profession;
	}
	
	@Length(min=0, max=50, message="主任医师签名长度必须介于 0 和 50 之间")
	public String getDirectorDoctor() {
		return directorDoctor;
	}

	public void setDirectorDoctor(String directorDoctor) {
		this.directorDoctor = directorDoctor;
	}
	
	@Length(min=0, max=100, message="主诉长度必须介于 0 和 100 之间")
	public String getActionInChief() {
		return actionInChief;
	}

	public void setActionInChief(String actionInChief) {
		this.actionInChief = actionInChief;
	}
	
	@Length(min=0, max=50, message="主治医师签名长度必须介于 0 和 50 之间")
	public String getAttendingsSign() {
		return attendingsSign;
	}

	public void setAttendingsSign(String attendingsSign) {
		this.attendingsSign = attendingsSign;
	}
	
	@Length(min=0, max=50, message="住院医师签名长度必须介于 0 和 50 之间")
	public String getResidentSign() {
		return residentSign;
	}

	public void setResidentSign(String residentSign) {
		this.residentSign = residentSign;
	}
	
	public String getSpecialized() {
		return specialized;
	}

	public void setSpecialized(String specialized) {
		this.specialized = specialized;
	}
	
	@Length(min=0, max=1, message="入院途径代码长度必须介于 0 和 1 之间")
	public String getAvenue() {
		return avenue;
	}

	public void setAvenue(String avenue) {
		this.avenue = avenue;
	}
	
	@Length(min=0, max=1, message="药物过敏标志长度必须介于 0 和 1 之间")
	public String getIrriIndicate() {
		return irriIndicate;
	}

	public void setIrriIndicate(String irriIndicate) {
		this.irriIndicate = irriIndicate;
	}
	
	@Length(min=0, max=2, message="医疗付费方式代码长度必须介于 0 和 2 之间")
	public String getPayment() {
		return payment;
	}

	public void setPayment(String payment) {
		this.payment = payment;
	}
	
	@Override
    @Length(min=0, max=64, message="机构id长度必须介于 0 和 64 之间")
	public String getOrgId() {
		return orgId;
	}

	@Override
    public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	
	@Length(min=0, max=70, message="医疗机构名称长度必须介于 0 和 70 之间")
	public String getOrgName() {
		return orgName;
	}

	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

    public String getDischargeDateStr() {
        return dischargeDateStr;
    }

    public void setDischargeDateStr(String dischargeDateStr) {
        this.dischargeDateStr = dischargeDateStr;
    }

    public String getInDateStr() {
        return inDateStr;
    }

    public void setInDateStr(String inDateStr) {
        this.inDateStr = inDateStr;
    }

    public String getDeptNameStr() {
        return deptNameStr;
    }

    public void setDeptNameStr(String deptNameStr) {
        this.deptNameStr = deptNameStr;
    }

    public String getDeptDischargeToStr() {
        return deptDischargeToStr;
    }

    public void setDeptDischargeToStr(String deptDischargeToStr) {
        this.deptDischargeToStr = deptDischargeToStr;
    }

    public String getAvenueStr() {
        return avenueStr;
    }

    public void setAvenueStr(String avenueStr) {
        this.avenueStr = avenueStr;
    }

    public String getLeaveTypeCode() {
        return leaveTypeCode;
    }

    public void setLeaveTypeCode(String leaveTypeCode) {
        this.leaveTypeCode = leaveTypeCode;
    }

    public String getPayTypeCode() {
        return payTypeCode;
    }

    public void setPayTypeCode(String payTypeCode) {
        this.payTypeCode = payTypeCode;
    }

    public String getIsAgreeAutopsy() {
        return isAgreeAutopsy;
    }

    public void setIsAgreeAutopsy(String isAgreeAutopsy) {
        this.isAgreeAutopsy = isAgreeAutopsy;
    }

    public String getVisitNumber() {
        return visitNumber;
    }

    public void setVisitNumber(String visitNumber) {
        this.visitNumber = visitNumber;
    }

    public String getDutyNurse() {
        return dutyNurse;
    }

    public void setDutyNurse(String dutyNurse) {
        this.dutyNurse = dutyNurse;
    }

    public String getPlaceAddress() {
        return placeAddress;
    }

    public void setPlaceAddress(String placeAddress) {
        this.placeAddress = placeAddress;
    }

    public String getPostCode() {
        return postCode;
    }

    public void setPostCode(String postCode) {
        this.postCode = postCode;
    }

    public String getNativePlace() {
        return nativePlace;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getInDiagnosisId() {
        return inDiagnosisId;
    }

    public void setInDiagnosisId(String inDiagnosisId) {
        this.inDiagnosisId = inDiagnosisId;
    }
}